#!/bin/bash
# 定义彩色文本输出函数
echo_blue() {
    echo -e "\033[34m$1\033[0m"
}
echo_green() {
    echo -e "\033[32m$1\033[0m"
}
echo_red() {
    echo -e "\033[31m$1\033[0m"
}
echo_purple() {
    echo -e "\033[35m$1\033[0m"
}
echo_purple "=====frp一键脚本====="

# 设置文件名和目标目录变量
FILENAME="frp.tar.gz"
TARGET_DIR="frp"

# 检查文件是否存在
if [ -f "$FILENAME" ]; then
    echo_blue "文件 '$FILENAME' 已存在，跳过下载。"
else
    echo_blue "正在下载必要文件..."
    wget https://github.com/fatedier/frp/releases/download/v0.60.0/frp_0.60.0_linux_amd64.tar.gz -O "$FILENAME"
    if [ $? -eq 0 ]; then
        echo_green "下载完毕"
    else
        echo_red "下载失败，请检查网络连接或链接是否有效。"
        exit 1  # 下载失败，退出脚本
    fi
fi

# 解压文件到目标目录
echo_blue "正在解压必要文件..."
rm -rf frp
tar -zxvf "$FILENAME"&&mv -f frp_0.60.0_linux_amd64 frp
chmod 755 -R frp

echo_blue "正在停止服务..."
systemctl stop frps.service

echo_blue "正在杀掉之前的frps进程"
pkill frps

echo_blue "正在添加系统服务"
SCRIPT_DIR=$(dirname "$(realpath "$0")")
echo '[Unit]
Description=FRPServerService
After=network.target
[Service]
Type=simple
ExecStart='"$SCRIPT_DIR"'/frp/frps -p 7000 -t token123456 --dashboard-pwd admin_krbaDw --dashboard-port 7500
Restart=on-failure
[Install]
WantedBy=multi-user.target' | tee /etc/systemd/system/frps.service

echo_blue "正在添加服务到启动项"
systemctl enable frps.service

# 启动服务
echo_blue "正在启动服务。"
if systemctl start frps.service; then
    # 如果启动成功，使用绿色字体显示启动成功
    echo_green "启动成功"
else
    # 如果启动失败，使用红色字体显示启动失败
    echo_red "启动失败"
fi

echo_purple "====一键frp脚本已经执行完毕===="